import {
  reqCateGoryList,
  reqBanners,
  reqFloors
} from "@/api/index";

const state = {
  baseCategoryList: [], // 所有分类的数组
  banners: [], // 广告位轮播数据的数组
  floors: [], // 所有楼层数据的数组
  // num:1
};
const mutations = {
  // mutions唯一可以修改state的地方
  GETCATEGORYLIST(state, categoryList) {
    state.categoryList = categoryList;
  },
  /* 
  接收分类列表
  */
  RECEIVE_BASE_CATEGORY_LIST(state, list) {
    state.baseCategoryList = list.slice(0, list.length - 2)
  },

  /* 
  接收广告轮播列表
  */
  RECEIVE_BANNERS(state, banners) {
    state.banners = banners
  },

  /* 
  接收楼层列表
  */
  RECEIVE_FLOORS(state, floors) {
    state.floors = floors
  },
}
const actions = {
  // action|用户处理派发action地方的，可以书写异步语句、自己逻辑地方
  async categoryList({
    commit,
    dispatch
  }) {

    //reqgetCategoryList返回的是一个Promise对象
    //需要用await接受成功返回的结果，await必须要结合async一起使用（CP）
    let result = await reqCateGoryList();
    if (result.code == 200) {
      commit("GETCATEGORYLIST", result.data);
      console.log(2222222222);
    }
  },
  //异步获取首页所有分类
  async getBaseCategoryList({
    commit
  }) {
    const result = await reqBaseCategoryList();
    if (result.code === 200) {
      commit('RECEIVE_BASE_CATEGORY_LIST', result.data)
    }
  },

  //异步获取广告位轮播数据
  async getBannerList({ commit }) {
    const result = await reqBanners();
    console.log(result);
    if (result.code === 200) {
      commit('RECEIVE_BANNERS', result.data)
    }
  },

  //异步获取所有楼层数据
  async getFloors({
    commit
  }) {
    const result = await reqFloors();
    if (result.code === 200) {
      commit('RECEIVE_FLOORS', result.data)
    }
  },
}
//计算属性
const getters = {};
export default {
  state,
  mutations,
  actions,
  getters,
};